﻿
namespace Patterns4Net.ArchitectureExplorer.Documentation
{
    using System.Xml.Linq;
    using Patterns4Net.Attributes;

    public interface IPatternDocProvider
    {
        /// <summary>
        /// Should return an element that conforms to pattern-description.xsd schema.
        /// </summary>
        /// <remarks>
        /// Here the abstraction is a little bit leaky (as XElement is returned), because 
        /// Architecture Explorer uses xstl to transform it into Xaml representation.
        /// </remarks>
        /// <param name="pattern">The pattern for which the documentation should be returned.</param>
        /// <returns>The documentation in xml format.</returns>
        XElement GetDocumentation(IPattern pattern);
    }
}
